var flagMore = true;
var rowIndex = "%^%%%%";//完工表的下标（用于改变选中行样式）
var fStartWorkId;

// 在页面刷新后保存当前的页码
var currentPageNumber;

/**
 * @description: 预加载
 */
$(function(){
	initPatrolTable();
	baoname();
	var time = {
			onClose : false,
			format : 'YYYY-MM-DD',
			donefun : function(obj) {
				// end.minDate = obj.val; // 开始日选好后，重置结束日的最小日期
			}
		};
	jeDate('#startTime',time);
	jeDate('#endTime',time);
	$.ajax({
		url : pathUrl("workCenter/getworkCenterIdAndName.action"),
		type : "GET",
		dataType : "JSON",
		async : false,
		success : function(data) {
  		var str='<option value="">请选择</option>';
  		for (var i=0;i<data.length;i++){
  			str=str+'<option value="'+data[i].text+'">'+data[i].value+'</option>';
  		}
  		$("#fWorkShopId").html(str);
  		$('#fWorkShopId').selectpicker('refresh');
		}
	});
	//点击Tab刷新表格
	$(".PQC",parent.document).click(function(){
		$('#patrolQualityCheckingTable').bootstrapTable('refresh');
	});
});

/** 
 * @description: 初始化开工记录表 
 * @param :  
 */
function initPatrolTable() {
	$('#patrolQualityCheckingTable').bootstrapTable('destroy').bootstrapTable({
		url : pathUrl("ipqc/fPendingQcList.action?fXjFlag=1&fIsBgt=1"),//请求后台的URL
		height : $(window).height()*0.8,//行高
		method : "POST",//请求方式
		//striped : true,//是否显示行间隔色
		cache : false,//是否使用缓存，默认为true
		pagination : true,//是否显示分页
		clickToSelect : true,//是否启用点击选中行
//		singleSelect : true,//是否单选
		pageNumber : 1,//初始化加载第几页
		pageSize : 10,//每页的记录行数
		sidePagination : "server", // 分页方式：client客户端分页，server服务端分页（*）
		pageList : [ 10, 25, 50, 100, 'ALL' ],// 分页方式：client客户端分页，server服务端分页
		rowStyle : function(row, index) {//自定义样式，参数为：row：行数据，index：行下标
			var classes = [ 'success' ];
			if (index == rowIndex) {
				return {
					classes : classes[0]
				};
			}
			return {};
		},
		queryParams : function(params) {//传递参数
			var data= {}, fWorker;	
			var orderBy = params.sort + " " + params.order;      //排序列名
			if(params.sort==undefined){
				orderBy = "fDate desc";
			}
			data.offset = params.offset;
			data.row = params.limit;
			
			data.fWorkShopId = $("#fWorkShopId").val();//工作中心
			data.fCode =  $("#fCode").val();//派工单号
			data.fBillNo =  $("#fBillNo").val();//任务单号
			data.fNumber =  $("#fNumber").val();//物料代码
			data.fName =  $("#fName").val();//物料名称
			data.fModel =  $("#fModel").val();//规格型号
			data.fOperSN =  $("#fOperSN").val();//工序号
			data.startTime =  $("#startTime").val();//开工时间
			data.endTime =  $("#endTime").val();//开工时间
			data.fOperName =  $("#fOperName").val();//工序名称
			data.fWorker =  $("#fWorker").val();//操作工卡号
			data.fChecker = $("#fChecker").val();//质检员卡号
			data.fMacSource = 1;
			data.fIsBgt = 1;
			data.orderBy = orderBy;
			console.log(data);
			return data;
		},
		dataType : 'JSON',//数据类型
		uniqueId : "id",//每一行的唯一标识，一般为主键列
		columns : [
		{
			field : "fBillNo",
			align : 'left',
			valign: 'middle',
			sortable : true,
			title : '任务单号',
			edit : false
		}, {
			field : "fCode",
			align : 'left',
			valign: 'middle',
			sortable : true,
			title : '派工单号',
			edit : false
		}, /*{
			field : "fNumber",
			align : 'left',
			valign: 'middle',
			sortable : true,
			title : '物料代码',
			edit : false
		},*/ {
			field : "fName",
			align : 'left',
			valign: 'middle',
			sortable : true,
			title : '物料名称',
			edit : false
		}, {
			field : "fModel",
			align : 'left',
			valign: 'middle',
			sortable : true,
			title : '规格型号',
			edit : false,
			formatter : function(value,row,index){
				return '<a href="javascript:void(0);" class="ggxh">'+value+'</a>';
			},
			events : operateEvents
		}, {
			field : "fOperSN",
			align : 'left',
			valign: 'middle',
			sortable : true,
			title : '工序号',
			edit : false
		}, {
			field : "fOperName",
			align : 'left',
			valign: 'middle',
			sortable : true,
			title : '工序名称',
			edit : false
		}, {
			field : "fTargetQty",
			align : 'left',
			valign: 'middle',
			sortable : true,
			title : '派工数量',
			edit : false
		}, {
			field : "fMachine",
			align : 'left',
			valign: 'middle',
			sortable : true,
			title : '设备名称',
			edit : false
		}, {
			field : "fDate",
			align : 'center',
			valign: 'middle',
			sortable : true,
			title : '开工时间',
			formatter : dateFormatter,
			edit : false			
		}, {
			field : "fWorkerName",
			align : 'center',
			valign: 'middle',
			sortable : true,
			title : '操作工',
			edit : false				
		}, {
			field : "fWorkcenter",
			align : 'center',
			valign: 'middle',
			sortable : true,
			title : '工作中心',
			edit : false				
		}, {
			field : 'operate',//如需导出execl field必填operate，否则操作行会被导出
			align : 'center',
			valign: 'middle',
			title : '操作',
			formatter : function(value,row,index){
				return '<button type="button" class="btn btn-default pick" style="font-size:24px;margin-right:5px;">质检</button>';
			},
			events : operateEvents,
			edit : false
		}],
		onClickRow : function(row, $element) {//行单击
			$('.success').removeClass('success');// 去除之前选中的行的，选中样式
			$($element).addClass('success');// 添加当前选中的 success样式用于区别
			index = $element.data('index');
			rowIndex = index;
			page = $('.pagination .active').find("a").eq(0).text();
		},
		onPageChange : function(number, size) {//翻页
			if (page == number) {
				rowIndex = index;
			} else {
				$('.success').removeClass('success');
				rowIndex = "%^%%%%";
			}
		},
		onUncheck : function(index){//取消勾选
			$('.success').removeClass('success');
			rowIndex = "%^%%%%";
		}
	});
	$('#patrolQualityCheckingTable').bootstrapTable('resetWidth');
}

/** 
 * @description: 刷新表格之后，重新初始化开工记录表并停留在当前页 
 * @param :  
 */
function initPatrolTableAtCurrentPage(currentPageNumber) {
	$('#patrolQualityCheckingTable').bootstrapTable('destroy').bootstrapTable({
		// 请求后台的URL
		url : pathUrl("ipqc/fPendingQcList.action?fXjFlag=1&fIsBgt=1"),
		// 行高
		height : $(window).height()*0.8,
		// 请求方式
		method : "POST",
		// 是否显示行间隔色
		//striped : true,
		// 是否使用缓存，默认为true
		cache : false,
		// 是否显示分页
		pagination : true,
		// 是否启用点击选中行
		clickToSelect : true,
		// 是否单选
//		singleSelect : true,
		// 初始化加载第几页
		pageNumber : currentPageNumber,
		// 每页的记录行数
		pageSize : 10,
		// 分页方式：client客户端分页，server服务端分页（*）
		sidePagination : "server", 
		// 每页行数选项
		pageList : [ 10, 25, 50, 100, 'ALL' ],
		// 自定义样式，参数为：row：行数据，index：行下标
		rowStyle : function(row, index) {
			var classes = [ 'success' ];
			if (index == rowIndex) {
				return {
					classes : classes[0]
				};
			}
			return {};
		},
		// 传递参数
		queryParams : function(params) {
			var data= {}, fWorker;			
			data.offset = params.offset;
			data.row = params.limit;
			
			data.fWorkShopId = $("#fWorkShopId").val();//工作中心
			data.fCode =  $("#fCode").val();//派工单号
			data.fBillNo =  $("#fBillNo").val();//任务单号
			data.fNumber =  $("#fNumber").val();//物料代码
			data.fName =  $("#fName").val();//物料名称
			data.fModel =  $("#fModel").val();//规格型号
			data.fOperSN =  $("#fOperSN").val();//工序号
			data.startTime =  $("#startTime").val();//开工时间
			data.endTime =  $("#endTime").val();//开工时间
			data.fOperName =  $("#fOperName").val();//工序名称
			data.fWorker =  $("#fWorker").val();//操作工卡号
			data.fChecker = $("#fChecker").val();//质检员卡号
			data.fMacSource = 1;
			data.fIsBgt = 1;
			console.log(data);
			return data;
		},
		dataType : 'JSON',//数据类型
		uniqueId : "id",//每一行的唯一标识，一般为主键列
		columns : [
		{
			field : "fBillNo",
			align : 'left',
			valign: 'middle',
			sortable : true,
			title : '任务单号',
			edit : false
		}, {
			field : "fCode",
			align : 'left',
			valign: 'middle',
			sortable : true,
			title : '派工单号',
			edit : false
		}, /*{
			field : "fNumber",
			align : 'left',
			valign: 'middle',
			sortable : true,
			title : '物料代码',
			edit : false
		},*/ {
			field : "fName",
			align : 'left',
			valign: 'middle',
			sortable : true,
			title : '物料名称',
			edit : false
		}, {
			field : "fModel",
			align : 'left',
			valign: 'middle',
			sortable : true,
			title : '规格型号',
			edit : false,
			formatter : function(value,row,index){
				return '<a href="javascript:void(0);" class="ggxh">'+value+'</a>';
			},
			events : operateEvents
		}, {
			field : "fOperSN",
			align : 'left',
			valign: 'middle',
			sortable : true,
			title : '工序号',
			edit : false
		}, {
			field : "fOperName",
			align : 'left',
			valign: 'middle',
			sortable : true,
			title : '工序名称',
			edit : false
		}, {
			field : "fTargetQty",
			align : 'left',
			valign: 'middle',
			sortable : true,
			title : '派工数量',
			edit : false
		}, {
			field : "fMachine",
			align : 'left',
			valign: 'middle',
			sortable : true,
			title : '设备名称',
			edit : false
		}, {
			field : "fDate",
			align : 'center',
			valign: 'middle',
			sortable : true,
			title : '开工时间',
			formatter : dateFormatter,
			edit : false			
		}, {
			field : "fWorkerName",
			align : 'center',
			valign: 'middle',
			sortable : true,
			title : '操作工',
			edit : false				
		}, {
			field : "fWorkcenter",
			align : 'center',
			valign: 'middle',
			sortable : true,
			title : '工作中心',
			edit : false				
		}, {
			field : 'operate',//如需导出execl field必填operate，否则操作行会被导出
			align : 'center',
			valign: 'middle',
			title : '操作',
			formatter : function(value,row,index){
				return '<button type="button" class="btn btn-default pick" style="font-size:24px;margin-right:5px;">质检</button>';
			},
			events : operateEvents,
			edit : false
		}],
		onClickRow : function(row, $element) {//行单击
			$('.success').removeClass('success');// 去除之前选中的行的，选中样式
			$($element).addClass('success');// 添加当前选中的 success样式用于区别
			index = $element.data('index');
			rowIndex = index;
			page = $('.pagination .active').find("a").eq(0).text();
		},
		onPageChange : function(number, size) {//翻页
			if (page == number) {
				rowIndex = index;
			} else {
				$('.success').removeClass('success');
				rowIndex = "%^%%%%";
			}
		},
		onUncheck : function(index){//取消勾选
			$('.success').removeClass('success');
			rowIndex = "%^%%%%";
		}
	});
	$('#patrolQualityCheckingTable').bootstrapTable('resetWidth');
}

/*
 * @Description: 表操作事件
 * @param :
 */
window.operateEvents= {
	'click .pick' : function(e, value, row, index) {//质检按钮点击事件		
		loadData(row,"#checkingForm");
		fStartWorkId = row.id;
		initCheckListTable();
		$("#patrolCheckingModal").modal('show');
		$("#fCardId").val(row.fCardId);
		$("#fEndWorkId").val(row.id);		
	},
	'click .delete' : function(e, value, row, index) {//删除按钮点击事件
		showSwal(
			'删除',
			'您确定删除这条检查项吗？',
			'是的，确定删除',
			function(result){//isConfirm 点击确定按钮，参数true/false
				if(result.value){
					$("#checkListTable").bootstrapTable('removeRow',index);
				}
			}
		);
	},
	'click .ggxh' : function(e, value, row, index) {//规格型号列点击
//		window.open(pathUrl("DLK?fNumber=")+row.fNumber);//传入参数
		fNumberData = row.fNumber;
		fOperSNData = row.fOperSN;
		initListTable();
		$("#showPDFModal").modal('show');
	},
	'click .TZName' : function(e, value, row, index) {//图纸名称列点击
		window.open(pathUrl("DLK?fName=")+row.fName);//传入参数
//		window.open(pathUrl("DLK?fName=1QJM12-01A3-30-3后盖工艺_1.pdf"));//传入参数
	}
}

/*
 * @Description: 初始化检查项表
 * @param : 
 */
function initCheckListTable(){
	var datas =[];
	datas[0]={"fName":"专检","fIsNgObj":0,"fStandardValue":"","fUpperLimit":"","fLowerLimit":"","fActualValue":"","fQcQty":1,"fNGQty":0,"fNote":""};
	/*datas[1]={"fName":"专检","fIsNgObj":2,"fStandardValue":"","fUpperLimit":"","fLowerLimit":"","fActualValue":"","fQcQty":1,"fNGQty":0,"fNote":""};
	datas[2]={"fName":"专检","fIsNgObj":4,"fStandardValue":"","fUpperLimit":"","fLowerLimit":"","fActualValue":"","fQcQty":1,"fNGQty":0,"fNote":""};	*/
	$('#checkListTable').bootstrapTable('destroy').bootstrapTable({
		dataType : 'JSON',//数据类型
		uniqueId : "id",//每一行的唯一标识，一般为主键列
		columns : [{
			field : "fName",
			align : 'center',
			valign: 'middle',
			title : '检查项',
			width : '15%',
			class : 'editfocus'
		},{
			field : "fIsNgObj",
			align : 'center',
			valign: 'middle',
			//sortable : true,
			title : '不良品类型',
			edit:{
				type:'select',//下拉框
				data:[{id:0,text:'无不良品'},{id:1,text:'工废'},{id:2,text:'料废'}/*,{id:3,text:'返修'}*/,{id:4,text:'次品'}],
    			valueField:'id',
    			textField:'text',
    			onSelect:function(val,rec){
//    				console.log(val,rec);
    				var $tr = $(this)[0].$el.closest("tr");
			    	var index = $tr.data('index');
			    	var row = {};
			    	var fNGQty = "";
			    	if(val == 0){
			    		fNGQty = 0;
			    	}
			    	row.fNGQty = fNGQty;
			    	row.fIsNgObj = val;
			    	$('#checkListTable').bootstrapTable('updateRow',{index: index,row:row});
    			}
    		},
			width : '10%'
		},{
			field : "fStandardValue",
			align : 'center',
			title : '标准值',
			width : '6%',
			//sortable : true,
			valign: 'middle'
		},{
			field : "fUpperLimit",
			align : 'center',
			valign: 'middle',
			width : '5%',
			title : '上限'
		},{
			field : "fLowerLimit",
			align : 'center',
			valign: 'middle',
			width : '5%',
			title : '下限'
		},{
			field : "fActualValue",
			align : 'center',
			valign: 'middle',
			width : '25%',
			title : '实测值'
		},{
			field : "fQcQty",
			align : 'center',
			valign: 'middle',
			width : '6%',
			title : '检验数'
		},{
			field : "fNGQty",
			align : 'center',
			valign: 'middle',
			width : '6%',
			title : '不良品'
		},{
			field : "fNote",
			align : 'center',
			valign: 'middle',
			width : '15%',
			title : '说明'
		},{
			field : 'operate',//如需导出execl field必填operate，否则操作行会被导出
			align : 'center',
			valign: 'middle',
			width : '5%',
			title : '操作',
			formatter : function(value,row,index){
				return '<button type="button" class="btn btn-danger delete" style="font-size:13px;margin-right:5px;">删除</button>';
			},
			events : operateEvents,
			edit : false
		}],
		data : datas
	});
}
/*
 * @Description: 巡检模态框提交按钮单击事件
 * @param :
 */
$("#confirm").click(function() {
	checkList();
});
/*
 * @Description: 检查列表必填项验证方法
 * @param :
 */
function checkList(){
	var isEmpty = true;
	var checkListData = $("#checkListTable").bootstrapTable('getData');
	var length = checkListData.length;//获取检查项列表里有几条数据
	var sum = 0;//各个检验数合计
	checkDatas = [];
	if(checkListData.length == 0){
		swal_Tips('请添加检查项！');
		return false;
	}
	$.each(checkListData,function(i,value){
		if(value.fName != "" || i == 0){
			isEmpty = false;
			var fQcQty = value.fQcQty;
			var fNGQty = value.fNGQty;
			var fIsNgObj = value.fIsNgObj;
			if(fQcQty === ""){
				swal_Tips('检验数不能为空！');
				return false;
			}
			fQcQty = parseFloat(fQcQty);
			if(isNaN(fQcQty)){
				swal_Tips('请输入正确的检验数！');
				return false;
			}
			if(fQcQty == 0){
				swal_Tips('检验数不能为0！');
				return false;
			}			
			fNGQty = parseFloat(fNGQty);
			if(fNGQty === ""){
				swal_Tips('不良品不能为空！');
				return false;
			}
			if(isNaN(fNGQty)){
				swal_Tips('请输入正确的不良品！');
				return false;
			}
			/*if(fNGQty > fQcQty){
				swal_Tips('不良品不能大于检验数！');
				return false;
			}*/
			if(fIsNgObj == "无不良品"){
				value.fIsNgObj = 0; 
			}
			checkDatas[i] = value;
			sum += fNGQty;
		}
		if(i == length-1){		
			$("#patrolCheckingModal").modal('hide');
			qualityChecking();
		}
	});
	if(isEmpty){
		swal_Tips('请输入检查项目！');
		return false;
	}
}
/*
 * @Description: 质检员卡号模态框提交按钮单击事件
 * @param :
 */
$("#save").click(function() {
	currentPageNumber = $('#checkListTable').bootstrapTable('getOptions').pageNumber;
	console.log(currentPageNumber);
	document.getElementById("save").setAttribute("disabled","true");
	qualityChecking();
});

/*
 * @Description: 质检提交方法
 * @param :
 */
function qualityChecking(){
	var fWorker = $("#dnameid").val();
	if(fWorker == ""){
		document.getElementById("save").removeAttribute("disabled");
		swal_Tips('请输入质检人卡号！');
		return false;
	}
	$.ajax({
		url : pathUrl("emp/findByCondition.action"),
		type : 'GET',
		dataType : "JSON",
		data : {
			"row" : 100000,
			"fNumber" : fWorker
		},
		success : function(data) {						
			if(data.code == "0000"){
//			    var fWorkerName = data.rows[0].fName;
			    var fWorkerName = $('#dname').val();
//				var data=$("#checkingForm").serializeObject() + '&' + $.param({'fWorker': fWorker,'fWorkName' : fWorkName,'fStartWorkId':fStartWorkId}) + '&' + $.param({'datas': JSON.stringify(checkDatas)});
//				console.log(data);
				showLoading();
				$.ajax({
					url : pathUrl("ipqc/xunJian.action"),
					type : 'POST',
					dataType : "JSON",
					data : $("#checkingForm").serializeObject() + '&' + $.param({'fWorker': fWorker,'fWorkerName' : fWorkerName,'fStartWorkId':fStartWorkId}) + '&' + $.param({'datas': JSON.stringify(checkDatas)}),
					success : function(data) {
//						console.log(data)
						if(data.code == "0000"){
							document.getElementById("save").removeAttribute("disabled");
							swal_Tips_Short(data.message);
							// TODO:可能需改
							initPatrolTable(currentPageNumber);
							$("#inputCardModal").modal('hide');
						}else{
							document.getElementById("save").removeAttribute("disabled");
							swal_Tips(data.message);
						}
					},
					error : function(request) {
						document.getElementById("save").removeAttribute("disabled");
						swal_Tips_Error();
					}
				});
			}else{
				document.getElementById("save").removeAttribute("disabled");
				swal_Tips('请输入正确的质检人卡号！');
				$("#fWorker").val("");
			}
		},
		error : function(request) {
			document.getElementById("save").removeAttribute("disabled");
			swal_Tips_Error();
		}
	});
}
/*
 * @Description: more按钮点击事件
 * @param : 
 */
$("#more").click(function(){
	if(flagMore){
		$("#more").text("隐藏");
		$("#extend").show();
		flagMore = false;
	}else{
		$("#more").text("更多");
		$("#extend").hide();
		flagMore = true;
	}
	$('#patrolQualityCheckingTable').bootstrapTable('resetWidth');
});
/*
 * @Description: 输入操作工姓名/操作工ID/派工单号回车事件
 * @param :
 */
function wipeData(){
	var fWorker = $("#fWorker").val();
	if(fWorker != ""){
		$.ajax({
			url : pathUrl("emp/findByCondition.action"),
			type : 'GET',
			dataType : "JSON",
			data : {
				"row" : 100000,
				"fNumber" : fWorker
			},
			success : function(data) {
//			console.log(data)
				if(data.code == "0000"){
					if(data.rows.length == 1){
						$("#wname").val(data.rows[0].fName);
					}else{
						$("#wname").val("");
					}
				}else{
					$("#wname").val("");				
				}
			},
			error : function(request) {
				swal_Tips_Error();
			}
		});
	}
	// TODO：可能需要改
	initPatrolTable();
	$('.success').removeClass('success');
	rowIndex = "%^%%%%";
}
/*
 * @Description: 新增检查项钮点击事件
 * @param :
 */
$("#addCheck").click(function() {
	$('#checkListTable').bootstrapTable('append',{"fIsNgObj":0,"fNGQty":0});
});
/*
 * @Description: 质检员卡号模态框取消按钮单击事件
 * @param :
 */
$("#back").click(function() {
	$("#patrolCheckingModal").modal('show');
});

function wipeData(){
	var fWorker = $("#fWorker").val();
	if(fWorker != ""){
		$.ajax({
			url : pathUrl("emp/findByCondition.action"),
			type : 'GET',
			dataType : "JSON",
			data : {
				"row" : 100000,
				"fNumber" : fWorker
			},
			success : function(data) {
//			console.log(data)
				if(data.code == "0000"){
					if(data.rows.length == 1){
						$("#wname").val(data.rows[0].fName);
					}else{
						$("#wname").val("");
					}
				}else{
					$("#wname").val("");				
				}
			},
			error : function(request) {
				swal_Tips_Error();
			}
		});
	}
	// TODO:可能需要改
	initPatrolTable();
	$('.success').removeClass('success');
	rowIndex = "%^%%%%";
}
/*
 * @Description: 新增检查项钮点击事件
 * @param :
 */
$("#addCheck").click(function() {
	$('#checkListTable').bootstrapTable('append',{"fIsNgObj":0,"fNGQty":0});
});
/*
 * @Description: 质检员卡号模态框取消按钮单击事件
 * @param :
 */
$("#back").click(function() {
	$("#patrolCheckingModal").modal('show');
});
/*
 * @Description: 质检员卡号模态框显示后操作：质检员卡号获得焦点
 * @param :
 */
$('#inputCardModal').on('shown.bs.modal', function () {
	$("#fWorkernum").focus();
});

/*
 * @Description: 过滤
 * @param :
 */
$("#query").click(function(){
	initPatrolTable();
});
/*
 * @Description: 重置
 * @param :
 */
$("#resetting").click(function(){
	$("#fWorkShopId").val("");//工作中心
	$("#fCode").val("");//派工单号
	$("#fBillNo").val("");//任务单号
	$("#fNumber").val("");//物料代码
	$("#fName").val("");//物料名称
	$("#fModel").val("");//规格型号
	$("#fOperSN").val("");//工序号
	$("#startTime").val("");//开工时间
	$("#endTime").val("");//开工时间
	$("#fOperName").val("");//工序名称
	$("#fWorker").val("");//操作工卡号
	$("#fChecker").val("");//质检员卡号
	initPatrolTable();
});